﻿using sipfe.Areas.Reporte.Models;
using sipfe.Controllers.Base;
using sipfe.model.dataAccess;
using sipfe.service.nuevo;
using sipfe.util;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Mvc;
using System.Web.UI.WebControls;

namespace sipfe.Areas.Reporte.Controllers
{
    public class ReporteConvocatoriaController : BaseSipfeController
    {
        public ActionResult ReporteCab()
        {
            cargaCatlogos1();
            return View("ReporteConvocatoriaCab");
        }

        public ViewResult ReporteConvocatoriaDet(string fec_IniVig, string fec_FinVig, string ide_Empresa, string n_ClaseTramite, string n_IdeConvo)
        {
            ConvocatoriaService cS = new ConvocatoriaService();
            IList<dynamic> listaConv = cS.ListarConvocatoriaService(fec_IniVig, fec_FinVig, ide_Empresa, n_ClaseTramite, n_IdeConvo);

            //  List<SIPMaeConvocatoria> listaConv = new List<SIPMaeConvocatoria>();
            // listaConv = cS.ListarConvocatoriaService(fec_IniVig, fec_FinVig, ide_Empresa, n_ClaseTramite);
            if (listaConv.Count > 0) _pagina = "ReporteConvocatoriaDet";
            return View(_pagina, listaConv);
        }

        public ViewResult TabMultiLineReporteConvo(int nIdeConvo)
        {
            ViewBag.nIdeConvo = nIdeConvo;
            return View();
        }
        public ViewResult ListadoSolicitudes(int nIdeConvo)
        {
            ConvocatoriaService cS = new ConvocatoriaService();
            IList<dynamic> listaSolicitantes = cS.ListadoSolicitudesService(nIdeConvo);

            return View(listaSolicitantes);
        }

        public HtmlString CreaSubMenuXml(int nIdeConvo)
        {
            StringBuilder submenu = new StringBuilder("");
            submenu.Append("<?xml version='1.0' encoding='utf-8'?>");
            submenu.Append("<rows>");
            submenu.Append("<page>1</page>");
            submenu.Append("<total>1</total>");
            submenu.Append("<records>1</records>");
            submenu.Append("<row>");
            submenu.Append("<cell>1</cell>");
            submenu.Append("<cell>Reporte</cell>");
            submenu.Append("<cell></cell>");
            submenu.Append("<cell>0</cell>");
            submenu.Append("<cell>1</cell>");
            submenu.Append("<cell>10</cell>");
            submenu.Append("<cell>false</cell>");
            submenu.Append("<cell>false</cell>");
            submenu.Append("</row>");
            submenu.Append("<row><cell>2</cell><cell>Lista</cell><cell>ListadoSolicitudes?nIdeConvo=").Append(nIdeConvo).Append("</cell><cell>1</cell><cell>2</cell><cell>3</cell><cell>true</cell><cell>true</cell></row>");
            //submenu.Append("<row><cell>3</cell><cell>JSON Data</cell><cell>jsonex.html</cell><cell>1</cell><cell>4</cell><cell>5</cell><cell>true</cell><cell>true</cell></row>");
           // submenu.Append("<row><cell>4</cell><cell>Load once</cell><cell>loadoncex.html</cell><cell>1</cell><cell>6</cell><cell>7</cell><cell>true</cell><cell>true</cell></row>");
            //submenu.Append("<row><cell>5</cell><cell>Array Data</cell><cell>localex.html</cell><cell>1</cell><cell>8</cell><cell>9</cell><cell>true</cell><cell>true</cell></row>");
            submenu.Append("</rows>");
            var rptax = new HtmlString(string.Format("{0}", submenu));
            return (HtmlString)rptax;            
        }

        //DownloadFile

        public ActionResult DownloadFile_old()
        {
            CarModels cm = new CarModels();
            List<Cars> model = cm.getAllCars();
            GridView gv = new GridView();
            gv.DataSource = model;
            gv.DataBind();
            Session["Cars"] = gv;
           
            return new DownloadFileActionResult(gv, "Cars.xls");
        }

        public ActionResult DownloadFile()
        {
            ConvocatoriaService cS = new ConvocatoriaService();
            IList<dynamic> listaSolicitantes = cS.ListadoSolicitudesService(2);
            SolicitudConvoVO solicitudConvoVO;
            List<SolicitudConvoVO> listita = new List<SolicitudConvoVO>();


            foreach (dynamic item in listaSolicitantes)
            {
                solicitudConvoVO = new SolicitudConvoVO();
                solicitudConvoVO.numeroSolicitud    = item.solicitud;
                solicitudConvoVO.nNumDocPostulante  = item.numDocPost;
                solicitudConvoVO.nombrePostulante   = item.postulante;
                solicitudConvoVO.nNumDocSolicitante = item.numDocSoli;
                solicitudConvoVO.nombreSolicitante  = item.solicitante;                
                listita.Add(solicitudConvoVO);
            }

            GridView gv = new GridView();
            gv.DataSource = listita;
            gv.DataBind();
            return new DownloadFileActionResult(gv, "ListaSolicitantes.xls");
        }







        

        private void cargaCatlogos1()
        {
            ViewBag.TipoConvocatoria = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_CONVOCATORIA);
            ViewBag.PaisEmisor = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_PAIS_EMISOR);
            ViewBag.TipoDocIdent = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_TIPO_DOC_IDENTIFICACION);
            ViewBag.GrupoNIvelConvoca = formaSelectGrupos(Constante.getInstance().N_IDE_GRUPO_NIVEL_CONVOCATORIA);
            ViewBag.ModalidadEstudio = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_MODALIDAD_ESTUDIO);
            ViewBag.ClaseTramite = formaSelectCompendio(Constante.getInstance().N_IDE_TABLA_CLASE_TRAMITE);
        }

    }
}
